package com.softer.chengxin.dicinfo.dao;

import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.dicinfo.dao.provider.DicTypeDaoProvider;
import com.softer.chengxin.dicinfo.entity.DicType;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author zcz
 * @date 2018/12/20
 */
@Mapper
@Repository
public interface DicTypeDao {

    /**
     * 根据id查询字典类型表
     * @param id
     * @return
     */
    @Select("SELECT id,`code`,`name`,`adder`,DATE_FORMAT(add_time, '%Y-%m-%d') AS `addTime`,description FROM dic_type WHERE id = #{id}")
    DicType getDicTypeById(String id);
    /**
     * 加载字典类型
     * @param page      页面信息
     * @return 字典类型列表
     */
    @SelectProvider(type = DicTypeDaoProvider.class, method = "getList")
    List<DicType> getList(Page page);
    /**
     * 查询count
     * @return 角色列表
     */
    @Select("SELECT COUNT(d.`id`) FROM dic_type d WHERE `code` != '1010'")
    int getCount();
    /**
     * 新增字典类型
     * @param dicType 字典信息
     * @return 处理结果
     */
    @Insert("INSERT INTO dic_type(`code`,`name`,`adder`,add_time,description) VALUES(#{code},#{name},#{adder},now(),#{description})")
    int insert(DicType dicType);

    /**
     * 修改字典类型
     * @param dicType 角色信息
     * @return 处理结果
     */
    @UpdateProvider(type = DicTypeDaoProvider.class, method = "update")
    int update(DicType dicType);

    /**
     * 查询最大的code
     * @return
     */
    @Select("SELECT MAX(`code`) FROM dic_type")
    String getMaxCode();
}
